#ifndef __PRODUCT__
#define __PRODUCT__

#include <iostream>

using namespace std;

class Product
{
	public:
		Product() {};
		virtual ~Product() {};
};

class ProductA : public Product
{
	public:
		ProductA()
		{
			cout<<"construct ProductA"<<endl;
		}

		virtual ~ProductA()
		{
			cout<<"destruct ProductA"<<endl;
		}
};

class ProductB : public Product
{
	public:
		ProductB()
		{
			cout<<"construct ProductB"<<endl;
		}

		virtual ~ProductB()
		{
			cout<<"destruct ProductB"<<endl;
		}
};


#endif
